"""
Python中实现并发的三种方式：
    ~ 多线程：I/O密集型应用
    ~ 多进程：计算机密集型应用
    ~ 异步编程：I/O密集型应用（异步I/O ---> 多个并发的I/O操作）
        - 多个子程序相互协作，让CPU保持较高的利用率，达到协作式并发效果
        - 协程（coroutine）、微线程、纤程
"""
import asyncio
from functools import partial


async def say_hello(name):
    print(f'Hello, {name}!')


obj = say_hello('Hao')


async def output(num):
    await asyncio.sleep(1)
    print(num)


cos = [output(i) for i in range(1, 11)]
loop = asyncio.get_event_loop()
loop.run_until_complete(obj)
loop.run_until_complete(asyncio.wait(cos))
